package org.jaaksi.kottlindemo.cls

/**
 * <p>主构造的参数可以在初始化块中使用。它们也可以在类体内声明的属性初始化器中使用</p>
 * <p>一个类如果想被继承，必须用 open 显示声明。没有添加open就是final的</p>
 * <p>如果构造函数有注解或可见性修饰符，这个 constructor 关键字是必需的，并且这些修饰符在它前面：</p>
 *
 * 主构造方法中使用val/var声明，那么也是声明属性了+初始化了
 */
open class ParentClas /*private constructor*/(var name: String) {
//  private lateinit var name: String

  init {
    name.toString()
    println("init name=$name")
//    this.name = name
  }

  // 必须open显示声明
  open fun say() {

  }

}